# Maintainer: Johannes Löthberg <johannes@kyriasis.com>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>

pkgname=haproxy
pkgver=2.8.4
pkgrel=1

pkgdesc='Reliable, high performance TCP/HTTP load balancer'
url='https://www.haproxy.org/'
arch=('loong64' 'x86_64')
license=('GPL')

depends=('openssl' 'pcre2' 'zlib' 'libxcrypt' 'libcrypt.so' 'lua' 'systemd-libs')
makedepends=('systemd')

backup=('etc/haproxy/haproxy.cfg')

install=haproxy.install

source=(https://www.haproxy.org/download/${pkgver%.*}/src/haproxy-$pkgver.tar.gz
        haproxy.cfg
        haproxy.sysusers
        0001-Use-CFLAGS-and-LDFLAGS-when-building-admin.patch)

sha256sums=('81bacbf50ec6d0f7ecaaad7c03e59978b00322fbdad6ed4a989dd31754b6f25d'
            'f6babef513b99a3fa0e50f2b144c73c980f1b78b119874ffa2580af1e651e7a9'
            'b02b4088205039f0979aef0ef3e22957f493dd54eabefaee7011f2d795303b3e'
            'a1e3a1c2923465081383eb431bae55ff9841d89909469311cdba4b394ec4a998')

prepare() {
  cd haproxy-$pkgver

  patch -p1 <"$srcdir"/0001-Use-CFLAGS-and-LDFLAGS-when-building-admin.patch
}

build() {
  cd haproxy-$pkgver

  export CFLAGS="$CFLAGS -fwrapv"

  make \
    CFLAGS="$CFLAGS" \
    LDFLAGS="$LDFLAGS" \
    CPU=generic \
    TARGET=linux-glibc \
    USE_GETADDRINFO=1 \
    USE_LUA=1 \
    USE_OPENSSL=1 \
    USE_PCRE2=1 USE_PCRE2_JIT=1 \
    USE_PROMEX=1 \
    USE_SYSTEMD=1 \
    USE_ZLIB=1

    make \
      SBINDIR=/usr/bin \
      OPTIMIZE= \
      CFLAGS="$CFLAGS" \
      LDFLAGS="$LDFLAGS" \
      admin/{halog/halog,iprange/ip{,6}range}
    make \
      SBINDIR=/usr/bin \
      -C admin/systemd/
}

package() {
  cd haproxy-$pkgver
  make \
    PREFIX="$pkgdir"/usr \
    SBINDIR="$pkgdir"/usr/bin \
    DOCDIR="$pkgdir"/usr/share/$pkgname \
    install

  for admin in admin/{halog/halog,iprange/ip{,6}range}; do
    install -D -m0755 $admin "$pkgdir"/usr/bin/$(basename $admin)
  done

  install -D -m0644 ../haproxy.sysusers "$pkgdir"/usr/lib/sysusers.d/haproxy.conf
  install -D -m0644 ../haproxy.cfg "$pkgdir"/etc/haproxy/haproxy.cfg
  install -D -m0644 admin/systemd/haproxy.service \
    "$pkgdir"/usr/lib/systemd/system/haproxy.service
  install -D -m0644 admin/syntax-highlight/haproxy.vim \
    "$pkgdir"/usr/share/nvim/runtime/syntax/haproxy.vim
  cp -r examples "$pkgdir"/usr/share/haproxy/examples
}
